# 定义pytest测试管理框架用例
import json

import pytest
import requests

# pytest环境下，对于参数化的处理是基于mark标记来实现的

# 实现参数化的装饰器
from pytest_cases.load_data import yaml_load

token = None

@pytest.mark.parametrize('data',yaml_load.load('./data/user.yaml'))  #路径因实际而异
def test_01(data):
    url = 'http://www.baidu.com'
    # data = {
    #     'username':user,
    #     'password':pwd
    # }
    res = requests.post(url=url,json=data['user'])
    print(res.text)
    result = json.loads(res.text)

    # 断言机制
    assert data['msg'] == result['msg']

    # 断言校验多个值时，将所有的需校验内容存放为一个list，然后与预期结果一一对比

    try:
        global token  # 定义全局变量
        token = result['token']
    except:
        pass


# 基于token获取用户信息
def test_02():
    print(token)


if __name__ == '__main__':
    pytest.main(['-v','-s'])





